#ifndef __WIOTA_APP_H__
#define __WIOTA_APP_H__

/**
 * @brief WIoTa APP初始化，如果时AT通信则初始化AT客户端，如果时SPI同行则初始化SPI相关
 *
 * @return 0表示成功，非0表示失败
 */
int wiota_app_init(void);

/**
 * @brief 配置并启动WIoTa
 *
 * @param is_factory 0表示普通启动，1表示工厂模式启动
 * @return int 0表示成功，非0表示失败
 */
int wiota_app_run(int is_factory);

/**
 * @brief 创建WIoTa APP消息队列
 *
 * @return 0表示成功，非0表示失败
 */
int wiota_app_queue_create(void);

/**
 * @brief 获取WIoTa APP消息队列句柄，主要是网关管理线程使用
 *
 * @return 队列句柄
 */
void *get_wiota_app_queue(void);

/**
 * @brief WIoTa APP任务处理函数，主要完成WIoTa的初始化和启动，以及处理网关管理线程发过来的下行消息处理等逻辑
 *
 * @param para 创建线程时传入的参数
 */
void wiota_app_task(void *pPara);

#endif /* __WIOTA_APP_H__ */